1. Field of the Invention
The present invention relates to the field of bus protocols in computer systems. More specifically, this invention relates to maintaining consistency of data residing in computer system cache(s).
2. Description of Related Art
Many known computer systems comprise a plurality of modules such as processor modules, memory modules, etc., which communicate over a system bus. Typically, the modules may be under control of a common or synchronized clock signal. Generally such a configuration provides a CPU clock signal on the bus. Individual modules generate signals on the bus synchronous to the CPU clock signal. A deterministic relationship is assumed to exist during the design of the various modules. Modules, such as the processing unit, may then be designed to add a fixed number of wait states to their access cycles to accommodate slower modules such a system design more than likely will require changes to the individual modules if the CPU clock speed is increased, for example. Therefore, it is difficult to replace one module in the computer system without affecting other modules.
Known computer systems further typically may utilize a plurality of configuration or "dip" switches. The switches are utilized to provide information to the processor unit regarding the configuration of installed modules. For example, a particular system may be configured with a first memory board having four megabytes of memory and a second memory board having an additional eight megabytes of memory. In this configuration, configuration switches, either on the main system board (motherboard or baseboard) or on the individual add-on modules may be set to indicate that four megabytes of memory are installed on the first memory board and eight megabytes of memory are installed on the second memory board.
In such systems, address decode logic may be employed on each memory board in the system. Based on the setting of the configuration switches in the examplary system described above, address decode logic may be employed such that the first board addresses memory in system memory space from memory address 0 to memory address 4 million (M)-1 and the second board addresses memory in the system memory space from memory address 4M to memory address 12M-1.
As an additional feature of modern bus architectures, a cache or multiple caches are used to increase throughput and performance between the central processing unit(s) and memory device(s). In order to employ cache(s) a cache-coherency or cache-consistency protocol must be used. This maintains the contents of memory consistent with the cache. Prior art approaches to maintaining cache consistency in a computer system have relied upon specific timing of central processing units and/or memories and the buses in a computer system. In other words, they have relied upon the synchronization of the synchronous bus architectures, and thereby have incurred the synchronization penalties associated with those architectures.